package com.zmn.oms.model.bo.refund;

import com.zmn.oms.common.constant.OrderConsts;
import com.zmn.oms.common.dto.OmsOperator;
import com.zmn.oms.model.entity.pay.OrderPay;
import com.zmn.oms.model.entity.work.OrderWork;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @ClassName PayRefundBO
 * @description: 发起退款业务类型
 * @author: wangyanci
 * @create: 2022-04-14 14:25
 * @Version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RefundInitiateBO {

    /**
     *退款发起类型
     * @see com.zmn.oms.common.enums.RefundInitiateTypeEnum
     */
    private Integer refundInitiateType;

    /**
     * 原单业务类型
     */
    private Integer originalOrderWorkBizType;

    /**
     * 原订单订单id
     */
    private Long originalOrderId;


    /**
     * 订单支付id
     */
    private Long orderPayId;

    /**
     * 退款金额
     */
    private Integer refundAmount;

    /**
     * 退款方式
     * 1 原路返回，2 线下退款
     * @see OrderConsts#ORDER_REFUND_TYPE_ONLINE
     */
    private Integer refundType;

    /**
     * 目标渠道
     */
    private Integer payTargetChannelId;

    /**
     * 收款人帐号
     */
    private String payeeThirdAccount;

    /**
     * 收款人帐号名称
     */
    private String payeeThirdAccountName;
    /**
     * 收款人银行
     */
    private String payeeThirdAccountBank;

    /**
     * 退款订单模型
     */
    private OrderWork refundOrderWork;

    /**
     * 操作信息模型
     */
    private OmsOperator operator;

    /**
     * 需要退款的支付记录
     */
    private List<OrderPay> orderPayList;

}